package com.huitone.gddw.service;

import java.util.List;
import java.util.Map;

import com.huitone.gddw.dao.entity.UploadFile;
import com.huitone.gddw.model.support.QueryPage;
import com.huitone.gddw.service.dto.UploadFileDTO;
import com.huitone.gddw.service.dto.business.UploadWebSmDTO;

/**
 * 文件上传记录 接口
 * @author wuluodan
 *
 */
public interface IUploadFileService {

	/**
	 * 分页查询
	 * @param page QueryPage
	 * @return QueryPage
	 */
	QueryPage<?> selectPage(QueryPage<?> page);
	
	/**
	 * 根据主键查询唯一记录
	 * @param fileId 文件ID
	 * @return UploadFile
	 */
	UploadFile selectByPrimaryKey(String fileId);
	
	/**
	 * 批量更改审核状态
	 * @param entity UploadFile
	 */
	void changeAuditStatus(UploadFile entity);
	
	/**
	 * 更改状态
	 * @param list
	 */
	void changeStatus(String[] fileIds, String status, String fileType);
	
	/**
	 * 删除
	 * @param fileId 文件ID
	 */
	void deleteBatch(String fileIds, String fileType);
	
	/**
	 * 根据条件获取记录
	 * @param params 查询参数
	 * @return List
	 */
	List<UploadFileDTO> getRecord(Map<String, Object> params);
	
	/**
	 * 保存上传文件数据
	 * @param uploadFile 文件信息
	 * @param dataList 数据列表
	 */
	void saveUploadData(UploadFile uploadFile, List<List<String>> dataList, Map<String, Object> map);
	
	/**
	 * 修改页面数据准备
	 * @param fileId 文件ID
	 * @return UploadWebSmDTO
	 */
	UploadWebSmDTO toUpdate(String fileId);
	
	/**
	 * 修改
	 * @param uploadFile 文件信息
	 * @param dataList 数据列表
	 * @param map 参数
	 */
	void update(UploadFile uploadFile, List<List<String>> dataList, Map<String, Object> map);
	
	/**
	 * 根据主键查询文件信息
	 * @param fileId 文件ID
	 * @return UploadFile
	 */
	UploadFile getById(String fileId);
	
	/**
	 * 导出门户短信
	 * @param params 参数
	 * @return List
	 */
	List<UploadWebSmDTO> getRecordWebSmRec(Map<String, Object> params);
	
}
